//=============================================================================
// System  : MatchKit
// File    : Symbols.cs
// Author  : Fabio Bussu  (matchkit@fabiobussu.it)
// Updated : 04/16/2013
// Note    : Copyright 2013, Fabio Bussu, All rights reserved
//
// This code is published under the Microsoft Public License (Ms-PL). A copy
// of the license should be distributed with the code.  It can also be found
// at the project website: http://matchkit.codeplex.com. This notice, the
// author's name, and all copyright notices must remain intact in all
// applications, documentation, and source files.
//
// Version     Date     Who  Comments
// ============================================================================
// 1.0.0.0  04/16/2013   FB  First draft
//=============================================================================
using MatchKit.Patterns;

namespace MatchKit
{
	/// <summary>
	/// Provides a set of static properties to shortcut the creation of patterns that 
	/// matches common symbols.
	/// </summary>
	/// <threadsafety static="true" instance="false" />
	/// <conceptualLink target="0a06b2a9-5f58-409a-ba62-639cfd77bca7" />
	public static class Symbols
	{
		/// <summary>
		/// Gets the pattern to match the <b>colon</b> symbol (<b>:</b>).
		/// </summary>
		public static IPattern Colon { get { return new CharPattern(':'); } }

		/// <summary>
		/// Gets the pattern to match the <b>tab</b> symbol (<b>\t</b>).
		/// </summary>
		public static IPattern Tab { get { return new CharPattern('\t'); } }

		/// <summary>
		/// Gets the pattern to match the <b>number</b> symbol (<b>#</b>).
		/// </summary>
		public static IPattern Number { get { return new CharPattern('#'); } }

		/// <summary>
		/// Gets the pattern to match the <b>comma</b> symbol (<b>,</b>).
		/// </summary>
		public static IPattern Comma { get { return new CharPattern(','); } }

		/// <summary>
		/// Gets the pattern to match the <b>space</b> symbol (<b> </b>).
		/// </summary>
		public static IPattern Space { get { return new CharPattern(' '); } }

		/// <summary>
		/// Gets the pattern to match the <b>plus</b> symbol (<b>+</b>).
		/// </summary>
		public static IPattern Plus { get { return new CharPattern('+'); } }

		/// <summary>
		/// Gets the pattern to match the <b>minus</b> symbol (<b>-</b>).
		/// </summary>
		public static IPattern Minus { get { return new CharPattern('-'); } }

		/// <summary>
		/// Gets the pattern to match the <b>dot</b> symbol (<b>.</b>).
		/// </summary>
		public static IPattern Dot { get { return new CharPattern('.'); } }

		/// <summary>
		/// Gets the pattern to match the <b>ampersand</b> symbol (<b>&amp;</b>).
		/// </summary>
		public static IPattern Ampersand { get { return new CharPattern('&'); } }

		/// <summary>
		/// Gets the pattern to match the <b>single quote</b> symbol (<b>'</b>).
		/// </summary>
		public static IPattern SingleQuote { get { return new CharPattern('\''); } }

		/// <summary>
		/// Gets the pattern to match the <b>asterisk</b> symbol (<b>*</b>).
		/// </summary>
		public static IPattern Asterisk { get { return new CharPattern('*'); } }

		/// <summary>
		/// Gets the pattern to match the <b>at</b> symbol (<b>@</b>).
		/// </summary>
		public static IPattern At { get { return new CharPattern('@'); } }

		/// <summary>
		/// Gets the pattern to match the <b>backquote</b> symbol (<b>`</b>).
		/// </summary>
		public static IPattern BackQuote { get { return new CharPattern('`'); } }

		/// <summary>
		/// Gets the pattern to match the <b>backslash</b> symbol (<b>\</b>).
		/// </summary>
		public static IPattern Backslash { get { return new CharPattern('\\'); } }

		/// <summary>
		/// Gets the pattern to match the <b>open brace</b> symbol (<b>{</b>).
		/// </summary>
		public static IPattern OpenBrace { get { return new CharPattern('{'); } }

		/// <summary>
		/// Gets the pattern to match the <b>close brace</b> symbol (<b>}</b>).
		/// </summary>
		public static IPattern CloseBrace { get { return new CharPattern('}'); } }

		/// <summary>
		/// Gets the pattern to match the <b>open bracket</b> symbol (<b>[</b>).
		/// </summary>
		public static IPattern OpenBracket { get { return new CharPattern('['); } }

		/// <summary>
		/// Gets the pattern to match the <b>close bracket</b> symbol (<b>]</b>).
		/// </summary>
		public static IPattern CloseBracket { get { return new CharPattern(']'); } }

		/// <summary>
		/// Gets the pattern to match the <b>carat</b> symbol (<b>^</b>).
		/// </summary>
		public static IPattern Carat { get { return new CharPattern('^'); } }

		/// <summary>
		/// Gets the pattern to match the <b>open parenthesis</b> symbol (<b>(</b>).
		/// </summary>
		public static IPattern OpenParenthesis { get { return new CharPattern('('); } }

		/// <summary>
		/// Gets the pattern to match the <b>close parenthesis</b> symbol (<b>)</b>).
		/// </summary>
		public static IPattern CloseParenthesis { get { return new CharPattern(')'); } }

		/// <summary>
		/// Gets the pattern to match the <b>dollar</b> symbol (<b>$</b>).
		/// </summary>
		public static IPattern Dollar { get { return new CharPattern('$'); } }

		/// <summary>
		/// Gets the pattern to match the <b>equal</b> symbol (<b>=</b>).
		/// </summary>
		public static IPattern Equal { get { return new CharPattern('='); } }

		/// <summary>
		/// Gets the pattern to match the <b>exclamation</b> symbol (<b>!</b>).
		/// </summary>
		public static IPattern Exclamation { get { return new CharPattern('!'); } }

		/// <summary>
		/// Gets the pattern to match the <b>greater</b> symbol (<b>&gt;</b>).
		/// </summary>
		public static IPattern Greater { get { return new CharPattern('>'); } }

		/// <summary>
		/// Gets the pattern to match the <b>less</b> symbol (<b>&lt;</b>).
		/// </summary>
		public static IPattern Less { get { return new CharPattern('<'); } }

		/// <summary>
		/// Gets the pattern to match the <b>percent</b> symbol (<b>%</b>).
		/// </summary>
		public static IPattern Percent { get { return new CharPattern('%'); } }

		/// <summary>
		/// Gets the pattern to match the <b>pipe</b> symbol (<b>|</b>).
		/// </summary>
		public static IPattern Pipe { get { return new CharPattern('|'); } }

		/// <summary>
		/// Gets the pattern to match the <b>quote</b> symbol (<b>"</b>).
		/// </summary>
		public static IPattern Quote { get { return new CharPattern('\"'); } }

		/// <summary>
		/// Gets the pattern to match the <b>slash</b> symbol (<b>/</b>).
		/// </summary>
		public static IPattern Slash { get { return new CharPattern('/'); } }

		/// <summary>
		/// Gets the pattern to match the <b>tilde</b> symbol (<b>~</b>).
		/// </summary>
		public static IPattern Tilde { get { return new CharPattern('~'); } }

		/// <summary>
		/// Gets the pattern to match the <b>underscore</b> symbol (<b>_</b>).
		/// </summary>
		public static IPattern Underscore { get { return new CharPattern('_'); } }
	}
}
